"""
XMLOutputParser 是 LangChain 库中专门用于解析 XML 格式输出的解析器。以下是它的详细说明：
主要功能
XML 解析：将模型输出的 XML 格式字符串解析为 Python 字典结构
结构化数据提取：将复杂的 XML 数据转换为易于处理的 Python 数据结构
格式验证：确保输出符合标准 XML 格式要
"""
from langchain_core.output_parsers import XMLOutputParser
from langchain_core.prompts import PromptTemplate

from models import get_ds_model_client

actor_query = "Generate the shortened filmography for Tom Hanks."

prompt = PromptTemplate.from_template("{actor_query} \n {format_instructions}")
client = get_ds_model_client()
parser = XMLOutputParser()
chain = prompt | client | parser
# 将模型返回的XML格式数据转换为字典机构数据
print(chain.invoke({"actor_query": actor_query, "format_instructions": parser.get_format_instructions()}))
"""
输出：
{'filmography': [{'movie': [{'title': 'Big'}, {'year': '1988'}]}]}]}
"""